DoCmd.Echo
は Access VBA において、画面更新(描画)を一時的に無効にして処理を高速化するために使うメソッドです。大量の操作をユーザーに見せたくない場合や、処理中のチラつきを防止したいときに便利です。
目次
🔹 基本構文
DoCmd.Echo EchoOn, bstrStatusBarText
🔸 引数の解説
引数名 | 型 | 説明 |
---|---|---|
EchoOn | Boolean | True = 画面更新を有効(表示)/False = 無効(非表示) |
bstrStatusBarText | String(省略可) | EchoOn = False のときに表示するステータスバーのメッセージ(例:「処理中です…」など) |
✅ 使用例:画面更新をオフにしてからバッチ処理
Sub UpdateData() DoCmd.Echo False, "データを更新中です..." ' 複数のデータ更新処理 DoCmd.OpenQuery "qryUpdatePrices" DoCmd.OpenQuery "qryUpdateStock" DoCmd.Echo True MsgBox "更新が完了しました。" End Sub
✅ 注意点
DoCmd.Echo False
のあと、必ずTrue
に戻すようにしてください。戻し忘れると画面がフリーズしたように見えます。- エラー時でも確実に
True
に戻すため、On Error
やFinally
処理を組み込むのが理想です。
✅ 補足
Echo
メソッドは「画面描画制御専用」であり、処理のスピードそのものには影響しません。- ステータスバーのテキストは Access の下部バーに一時表示されます(フォームやレポートには表示されません)。